package testes;

import static org.junit.Assert.*;

import java.util.HashSet;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.quasar.copaPaises.businessLayer.CalendarDate;
import org.quasar.copaPaises.businessLayer.Campeonato;
import org.quasar.copaPaises.businessLayer.Cartao;
import org.quasar.copaPaises.businessLayer.Cidade;
import org.quasar.copaPaises.businessLayer.Clube;
import org.quasar.copaPaises.businessLayer.Continente;
import org.quasar.copaPaises.businessLayer.Equipa;
import org.quasar.copaPaises.businessLayer.Estadio;
import org.quasar.copaPaises.businessLayer.Golo;
import org.quasar.copaPaises.businessLayer.Grupo;
import org.quasar.copaPaises.businessLayer.Jogador;
import org.quasar.copaPaises.businessLayer.Jogo;
import org.quasar.copaPaises.businessLayer.Membro;
import org.quasar.copaPaises.businessLayer.Pais;
import org.quasar.copaPaises.businessLayer.Participacao;
import org.quasar.copaPaises.businessLayer.Participante;
import org.quasar.copaPaises.businessLayer.Treinador;

public class TreinadorTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		 CalendarDate.allInstances.clear();
		  Campeonato.allInstances.clear();
		  Cartao.allInstances.clear();
		  Cidade.allInstances.clear();
		  Clube.allInstances.clear();
		  Continente.allInstances.clear();
		  Equipa.allInstances.clear();
		  Estadio.allInstances.clear();
		  Golo.allInstances.clear();
		  Grupo.allInstances.clear();
		  Jogador.allInstances.clear();
		  Jogo.allInstances.clear();
		  Membro.allInstances.clear();
		  Pais.allInstances.clear();
		  Participacao.allInstances.clear();
		  Participante.allInstances().clear();
		  Treinador.allInstances.clear();
	}

	@After
	public void tearDown() throws Exception {
		 CalendarDate.allInstances.clear();
		  Campeonato.allInstances.clear();
		  Cartao.allInstances.clear();
		  Cidade.allInstances.clear();
		  Clube.allInstances.clear();
		  Continente.allInstances.clear();
		  Equipa.allInstances.clear();
		  Estadio.allInstances.clear();
		  Golo.allInstances.clear();
		  Grupo.allInstances.clear();
		  Jogador.allInstances.clear();
		  Jogo.allInstances.clear();
		  Membro.allInstances.clear();
		  Pais.allInstances.clear();
		  Participacao.allInstances.clear();
		  Participante.allInstances().clear();
		  Treinador.allInstances.clear();
	}

	@Test
	public final void testToString() {
		Treinador t = new Treinador();
		assertTrue(t.toString().equals("Treinador []\n"));
	}

	@Test
	public final void testTreinador() {
		Treinador t = new Treinador();
		assertNotNull(t);
	}

	@Test
	public final void testTreinadorCalendarDateStringPais() {
		
		Pais p = new Pais();
		CalendarDate d = new CalendarDate();
		Treinador t = new Treinador(d,"Rui", p);
		
		assertNotNull(t);
	}

	@Test
	public final void testParticipacoes() {
		Participacao p = new Participacao();
		Treinador t = new Treinador();
		p.setTreinador(t);
		assertTrue(t.participacoes().contains(p));
	}

	@Test
	public final void testSetParticipacoes() {
		Participacao p = new Participacao();
		Treinador t = new Treinador();
		HashSet<Participacao> parts = new HashSet<Participacao>();
		parts.add(p);
		t.setParticipacoes(parts);
		
		assertTrue(t.participacoes().contains(p));
		
	}

}
